﻿using System;

namespace DC2012
{
    public class WallSet
    {
        public string Name { get; set; }

        public DCAnimatedSprite ceiling { get; set; }
        public DCAnimatedSprite ceilingFlipped { get; set; }

        public DCAnimatedSprite ceiling_front0 { get; set; }
        public DCAnimatedSprite ceiling_front1 { get; set; }
        public DCAnimatedSprite ceiling_front2 { get; set; }

        public DCAnimatedSprite ceiling_side0 { get; set; }
        public DCAnimatedSprite ceiling_side1 { get; set; }
        public DCAnimatedSprite ceiling_side2 { get; set; }

        public DCAnimatedSprite doorframe_front0 { get; set; }
        public DCAnimatedSprite doorframe_front1 { get; set; }
        public DCAnimatedSprite doorframe_front2 { get; set; }
        public DCAnimatedSprite doorframe_front3 { get; set; }

        public DCAnimatedSprite doorframe_side1 { get; set; }
        public DCAnimatedSprite doorframe_side2 { get; set; }
        public DCAnimatedSprite doorframe_side3 { get; set; }

        public DCAnimatedSprite floor { get; set; }
        public DCAnimatedSprite floorFlipped { get; set; }


        public DCAnimatedSprite pit_front0 { get; set; }
        public DCAnimatedSprite pit_front1 { get; set; }
        public DCAnimatedSprite pit_front2 { get; set; }
        public DCAnimatedSprite pit_front3 { get; set; }

        public DCAnimatedSprite pit_side0 { get; set; }
        public DCAnimatedSprite pit_side1 { get; set; }
        public DCAnimatedSprite pit_side2 { get; set; }
        public DCAnimatedSprite pit_side3 { get; set; }

        public DCAnimatedSprite roof { get; set; }

        public DCAnimatedSprite stairsdown_front0 { get; set; }
        public DCAnimatedSprite stairsdown_front1 { get; set; }
        public DCAnimatedSprite stairsdown_front2 { get; set; }
        public DCAnimatedSprite stairsdown_front3 { get; set; }

        public DCAnimatedSprite stairsdown_side0 { get; set; }
        public DCAnimatedSprite stairsdown_side1 { get; set; }
        public DCAnimatedSprite stairsdown_side2 { get; set; }
        public DCAnimatedSprite stairsdown_side3 { get; set; }

        public DCAnimatedSprite stairsup_front0 { get; set; }
        public DCAnimatedSprite stairsup_front1 { get; set; }
        public DCAnimatedSprite stairsup_front2 { get; set; }
        public DCAnimatedSprite stairsup_front3 { get; set; }

        public DCAnimatedSprite stairsup_side0 { get; set; }
        public DCAnimatedSprite stairsup_side1 { get; set; }
        public DCAnimatedSprite stairsup_side2 { get; set; }
        public DCAnimatedSprite stairsup_side3 { get; set; }

        public DCAnimatedSprite wall_far3 { get; set; }
        public DCAnimatedSprite wall_front1 { get; set; }
        public DCAnimatedSprite wall_front2 { get; set; }
        public DCAnimatedSprite wall_front3 { get; set; }
        public DCAnimatedSprite wall_front4 { get; set; }

        public DCAnimatedSprite wall_front1Flipped { get; set; }
        public DCAnimatedSprite wall_front2Flipped { get; set; }
        public DCAnimatedSprite wall_front3Flipped { get; set; }


        public DCAnimatedSprite wall_left1 { get; set; }
        public DCAnimatedSprite wall_left2 { get; set; }
        public DCAnimatedSprite wall_left3 { get; set; }
        public DCAnimatedSprite wall_side0 { get; set; }
        public DCAnimatedSprite wall_side1 { get; set; }
        public DCAnimatedSprite wall_side2 { get; set; }
        public DCAnimatedSprite wall_side3 { get; set; }
        public DCAnimatedSprite wall_side4 { get; set; }

        public DCAnimatedSprite window { get; set; }


        public WallSet(string name)
        {
            this.Name = name;
            ceiling = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling.png", "default_CEILING", 0, 0, 0, 0);

            ceilingFlipped = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling.png", "default_CEILING_ALT", 0, 0, 0, 0);
            ceilingFlipped.Surface = ceilingFlipped.Surface.CreateFlippedHorizontalSurface();

            ceiling_front0 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\ceiling_front0.bmp", "", 14,0,0,0);
            ceiling_front1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling_front1.bmp", "", 66, 18, 0, 0);
            ceiling_front2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling_front2.bmp", "", 124, 42, 0, 0);
            ceiling_side0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling_side0.bmp", "", -62, 0, 386, 0);
            ceiling_side1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling_side1.bmp", "", 0, 18, 325, 18);
            ceiling_side2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\ceiling_side2.bmp", "", 0, 42, 298, 42);
            doorframe_front0 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\doorframe_front0.png", "", 188,21,0,0);
            doorframe_front1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_front1.png", "", 61, 20, 0, 0);
            doorframe_front2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_front2.png", "", 124, 45, 0, 0);
            doorframe_front3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_front3.png", "", 146, 64, 0, 0);
            doorframe_side1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_side1.png", "", 30, 35, 364, 35);
            doorframe_side2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_side2.png", "", 100, 60, 315, 60);
            doorframe_side3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\doorframe_front3.png", "", 10, 64, 288, 64);
           
            floor = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\floor.png", "default_FLOOR", 0, 0, 0, 0);
            floorFlipped = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\floor.png", "default_FLOOR_ALT", 0, 0, 0, 0);
            floorFlipped.Surface = floorFlipped.Surface.CreateFlippedHorizontalSurface();
            
            pit_front0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\pit_front0.png", "", 32, 239, 0, 0);
            pit_front1 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\pit_front1.bmp", "", 64,181,0,0);
            pit_front2 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\pit_front2.bmp", "", 122,154,0,0);
            pit_front3 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\pit_front3.bmp", "", 150,139,0,0);
            pit_side0 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\pit_side0.bmp", "", -64,239,383,239);
            pit_side1 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\pit_side1.bmp", "", 0,181,325,181);
            pit_side2 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\" + name + @"\pit_side2.bmp", "", 0, 154, 298, 154);
            pit_side3 = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\" + name + @"\pit_side3.bmp", "", 0, 139, 284, 139);
            roof = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\roof.png", "", 0, 0, 0, 0);
            stairsdown_front0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_front0.png", "", 0, 158, 0, 0);
            stairsdown_front1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_front1.png", "", 66, 24, 0, 0);
            stairsdown_front2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_front2.png", "", 120, 52, 0, 0); ;
            stairsdown_front3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_front3.png", "", 145, 65, 0, 0);
            stairsdown_side0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_side0.png", "", 0, 0, 384, 0);
            stairsdown_side1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_side1.png", "", 0, 0, 384, 0);
            stairsdown_side2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_side2.png", "", 0, 35, 298, 35);
            stairsdown_side3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsdown_side3.png", "", 0, 52, 278, 52);
            stairsup_front0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_front0.png", "", 0, 158, 0, 0);
            stairsup_front1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_front1.png", "", 65, 19, 0, 0);
            stairsup_front2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_front2.png", "", 120, 42, 0, 0);
            stairsup_front3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_front3.png", "", 148, 52, 0, 0);
            stairsup_side0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_side0.png", "", 0, 0, 384, 0);
            stairsup_side1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_side1.png", "", 0, 0, 384, 0);
            stairsup_side2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_side2.png", "", 0, 42, 298, 42);
            stairsup_side3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\stairsup_side3.png", "", 0, 52, 278, 52);
            wall_far3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_far3.png", "", 0, 50, 388, 50);
            
            wall_front1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front1.png", "", 64, 21, 0, 0);
            wall_front2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front2.png", "", 120, 49, 0, 0); //49
            wall_front3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front3.png", "", 148, 62, 0, 0);

            wall_front1Flipped = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front1.png", "", 64, 21, 0, 0);
            wall_front2Flipped = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front2.png", "", 120, 49, 0, 0); //49
            wall_front3Flipped = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front3.png", "", 148, 62, 0, 0);

            wall_front1Flipped.Surface = wall_front1Flipped.Surface.CreateFlippedHorizontalSurface();
            wall_front2Flipped.Surface = wall_front2Flipped.Surface.CreateFlippedHorizontalSurface();
            wall_front3Flipped.Surface = wall_front3Flipped.Surface.CreateFlippedHorizontalSurface();

            //            wall_front4 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_front4.png", "", 169, 72, 0, 0);
            wall_left1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_left1.png", "", 0, 21, 384, 21);
            wall_left2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_left2.png", "", 0, 49, 328, 49);
            wall_left3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_left3.png", "", 0, 63, 300, 63);
            wall_side0 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_side0.png", "", 0, 0, 384, 0);
            wall_side1 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_side1.png", "", 64, 21, 328, 21); //448,326
            wall_side2 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_side2.png", "", 120, 49, 298, 49);
            wall_side3 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_side3.png", "", 148, 63, 277, 63);
//            wall_side4 = new DCAnimatedSprite(Environment.CurrentDirectory + @"\Data\Gfx\WallSets\" + name + @"\wall_side4.png", "", 169, 72, 262, 72);

            window = new DCAnimatedSprite(Environment.CurrentDirectory+@"\Data\Gfx\WallSets\"+name+@"\window.bmp", "", 128,32,0,0);           
        }
    }
}
